package com.maishi.programmer.jainzhioffer;

import java.util.List;

/**
 * Created by brossdong on 2018/3/26.
 * 输入一个链表，反转链表后，输出链表的所有元素。
 */
public class TestProblem23 {

    /**
     * 构造一个单链表
     */
    public class ListNode {
        int val;
        ListNode next = null;
        ListNode (int val) {
            this.val = val;
        }
    }

    public ListNode ReverseList(ListNode head) {
        /**
         * 依次遍历所有节点
         * 将所有节点的next指向前一个节点
         */
        ListNode pre = null;
        ListNode next = null;
        while (head != null) {
            next = head.next;
            //将当前节点对下一个节点的引用指向前一个节点
            head.next = pre;
            //将前一个节点指向当前节点
            pre = head;
            //将当前节点指向下一个节点
            head = next;
        }
        return pre;
    }

}
